Packet-based communication systems allow the user of a device, such as a personal computer, to communicate across a computer network such as the Internet. Packet-based communication systems include voice over internet protocol (“VoIP”) communication systems. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication. To use a VoIP system, the user must install and execute client software on their device. The client software provides the VoIP connections as well as other functions such as registration and authentication. In addition to voice communication, the client may also provide further features such as video calling, instant messaging (“IM”), voicemail and file transfer.
One type of packet-based communication system uses a peer-to-peer (“P2P”) topology built on proprietary protocols. To enable access to a peer-to-peer system, the user must execute P2P client software provided by a P2P software provider on their computer, and register with the P2P system. When the user registers with the P2P system the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, communication can subsequently be set up and routed between users of the P2P system without the further use of a server. In particular, the users can establish their own communication routes through the P2P system based on the exchange of one or more digital certificates (or user identity certificates, “UIC”), which enable access to the P2P system. The exchange of the digital certificates between users provides proof of the users' identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the user. It is therefore a characteristic of peer-to-peer communication that the communication is not routed using a central server but directly from end-user to end-user. Further details on such a P2P system are disclosed in WO 2005/009019.
Communication events that occur at a user terminal in the communication system, such as receiving an incoming call or placing an outgoing call, may require certain features to be enabled and activated for use at the user terminal in order for the communication event to be processed correctly at the user terminal. For example, a particular version of a codec may be required at the user terminal in order to encode and/or decode data of the communication event in an optimal manner.
Software that includes a required feature can be installed on the user terminal, or on a server accessible by the user terminal. Software providers often require that the software is authenticated for use at the user terminal, for reasons such as preventing or reducing illegal copying of the software. This also allows the software provider to control the distribution and use of the software. The user of the user terminal is required to provide an identification, such as a product key, to the software provider in order to activate and enable the software for use on the user terminal. The software provider issues a certificate to the user terminal which allows the activation and enablement of the software for use on the user terminal. The software provider can control the number of certificates that are issued for a particular identification (or product key).
If the user has not authorised the software for use on the user terminal then he cannot use the software on the user terminal. Therefore, if a communication event occurs that requires the use of a feature to process data pertaining to the communication event, then that feature cannot be used, which can result in failure or degradation of the communication event.